1. Field of the Invention
The present invention relates to reporting errors for an optical navigation sensor for use in a computer mouse, and more particularly, to a method for keeping reporting errors constant over different frame rates.
2. Description of the Prior Art
When a computer mouse is moved by a user on a 2-D surface, information of the 2-D surface is captured at various intervals by an optical navigation sensor, in order to obtain a delta (change in position), and then sent to an accumulator, which is also within the optical navigation sensor. The rate at which information is captured and sent to the accumulator is known as the frame rate of the optical navigation sensor. The accumulator in the optical navigation sensor will be accessed through SPI (Serial Peripheral Interface) at certain intervals by a host (for example, an MCU), and subsequently sent to a computer, so that the computer can determine current position of the computer mouse and transform that information into a cursor position on a display screen of the computer. The rate at which the accumulator is accessed is known as the polling or reporting rate of the optical navigation sensor. Where there is a discrepancy between the determined and actual position of the computer mouse, a reporting error will result. Assuming a constant polling rate, reporting/polling errors at higher frame rates will be fewer than at lower frame rates, as the computer has more available information for making a determination.
Please refer to FIG. 1A and FIG. 1B, which illustrate different frame rates of an optical navigation sensor, and the reporting error for a constant polling rate. FIG. 1A illustrates a frame rate of 12 KHz or frame period of 83.33 μs, and FIG. 1B illustrates a frame rate of 4 KHz or frame period of 250 μs. The average polling rate in both diagrams is ˜1 KHz or polling period of ˜1 ms (reporting errors are shown for polling period of both 1.01 ms and for 0.99 ms). In FIG. 1A, when the polling period is 1.01 ms, the total number of frames collected is 12 or 13; when the polling period is 0.99 ms, the total number of frames collected is 11 or 12. The respective errors are 1/12 (8.3%). In FIG. 1B, when the polling period is 1.01 ms, the total number of frames collected is 4 or 5; when the polling period is 0.99 ms, the total number of frames collected is 3 or 4. The respective errors are ¼ (25%). As illustrated by these diagrams, the higher the frame rate, the lower the reporting error.
When a user operates a computer mouse at different velocities (for example, when playing a computer game), the frame rate of the optical navigation sensor will vary with the velocity; in other words, the frame rates vary depending on the mouse usage. In other systems, frame rate of the optical navigation sensor will vary according to surface, where a darker surface will have a lower frame rate than a brighter surface. The user will therefore experience inconsistent reporting errors over the different frame rates, which will not only affect the tracking performance of the mouse, but will also detract from the user's enjoyment of the game.
It is therefore an objective of the present invention to provide a method which can achieve constant reporting errors over different frame rates of an optical navigation sensor.